package com.cmc.cloud.cmclink.doc.service.so;

import com.cmc.cloud.cmclink.doc.entity.SpecialCargoApplyDO;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * @author 陈正
 * @date 2025/7/22
 */
public interface SoCommonService {
    /**
     * 同步审批状态
     *
     * @param bookingNo                 订舱Ids
     * @param specialCargoApproveStatus 审批状态
     * @return
     */
    void syncSoStatusSpecial(Long soId, String specialCargoApproveStatus);

    /**
     * 同步审批状态
     *
     * @param soId          订舱ID
     * @param approveStatus 审批状态
     * @return
     */
    void syncSoStatus(Long soId, String approveStatus);

    /**
     * 查询特种货审批状态
     *
     * @param bookingNos 订舱号
     * @return 特种货
     */
    Map<String, SpecialCargoApplyDO> getSpecialCargoApplyByBookingNoMap(List<String> bookingNos);

    /**
     * 查询特种货审批状态
     *
     * @param soId
     * @param bookingNo 订舱号
     * @return 特种货
     */
    SpecialCargoApplyDO getSpecialCargoApplyBySoId(Long soId, String bookingNo);

    /**
     * 查询特种货审批状态
     *
     * @param soIds 订舱号
     * @return 特种货
     */
    Map<Long, SpecialCargoApplyDO> getSpecialCargoApplyBySoIds(Collection<Long> soIds);
}
